/*
*  Copyright 2019-2020 Zheng Jie
*
*  Licensed under the Apache License, Version 2.0 (the "License");
*  you may not use this file except in compliance with the License.
*  You may obtain a copy of the License at
*
*  http://www.apache.org/licenses/LICENSE-2.0
*
*  Unless required by applicable law or agreed to in writing, software
*  distributed under the License is distributed on an "AS IS" BASIS,
*  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  See the License for the specific language governing permissions and
*  limitations under the License.
*/
package com.fzhucc.modules.pms.domain.dto;

import com.fzhucc.modules.pms.domain.ProjectScore;
import com.fzhucc.modules.system.service.dto.UserSmallDto;
import com.fzhucc.modules.thinktank.domain.AcademicianProjectLog;
import com.fzhucc.modules.thinktank.domain.CapitalProjectLog;
import com.fzhucc.modules.thinktank.domain.CompanyProjectLog;
import com.fzhucc.modules.thinktank.domain.LeaderProjectLog;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.annotations.Comment;

import javax.persistence.Column;
import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;
import java.util.Set;

/**
* @website https://eladmin.vip
* @description /
* @author Woolsen
* @date 2022-11-17
**/
@Data
public class ProjectDto implements Serializable {

    @ApiModelProperty("id")
    private String id;

    @ApiModelProperty("赛事名称")
    private String raceName;

    @ApiModelProperty(value = "假删除时间")
    private Timestamp deleteTime;

    @ApiModelProperty("赛事编号")
    private String raceCode;

    @ApiModelProperty("赛事级别（字典）")
    private String raceRank;

    @ApiModelProperty("渠道类型 1大赛 2项目申报")
    private String channelType;

    @ApiModelProperty("参数人员名称")
    private String userName;

    @ApiModelProperty("参数人员账号")
    private String userAccount;

    @ApiModelProperty("项目编码")
    private String projectCode;

    @ApiModelProperty("项目名称")
    private String projectName;

    @ApiModelProperty("热度")
    private Integer hot;

    @ApiModelProperty("项目所在地编码")
    private String projectAreaCode;

    @ApiModelProperty("项目所在地名称")
    private String projectAreaName;

    @ApiModelProperty("赛区")
    private String raceArea;

    @ApiModelProperty("所属赛道（字典）")
    private String raceTrack;

    @ApiModelProperty("所属领域")
    private String raceDomain;

    @ApiModelProperty("申报企业")
    private String companyName;

    @ApiModelProperty("特点与优势")
    private List<String> features;

    @ApiModelProperty("经营情况")
    private List<String> situations;

    @ApiModelProperty("注册地址")
    private String companyAddress;

    @ApiModelProperty("注册时间")
    private String registrationTime;

    @ApiModelProperty("主营业务")
    private String mainBusiness;

    @ApiModelProperty("注册资本")
    private String registeredCapital;

    @ApiModelProperty("营业执照 统一社会信用代码")
    private String businessLicense;

    @ApiModelProperty("法人代表")
    private String legalPerson;

    @ApiModelProperty("学历")
    private String education;

    @ApiModelProperty("公司就业人数")
    private Integer companyPeopleNum;

    @ApiModelProperty("上年经营收入")
    private String lastYearRevenues;

    @ApiModelProperty("若无成立工会 是否承诺在大赛决赛日后三个月内成立工会组织")
    private String isFoundingLaborUnion;

    @ApiModelProperty("企业股权结构情况")
    private String ownershipStructure;

    @ApiModelProperty("申报项目主体")
    private String declareSubject;

    @ApiModelProperty("地址")
    private String address;

    @ApiModelProperty("负责人")
    private String principal;

    @ApiModelProperty("项目就业人数")
    private Integer projectEmployment;

    @ApiModelProperty("所属工会（如有）")
    private String laborUnion;

    @ApiModelProperty("核心知识产权数量及情况说明")
    private String intellectualProperty;

    @ApiModelProperty("项目背景")
    private String projectBackground;

    @ApiModelProperty("产品说明")
    private String description;

    @ApiModelProperty("市场前景")
    private String marketProspect;

    @ApiModelProperty("推荐渠道")
    private String recommendChannels;

    @ApiModelProperty("项目图")
    private String projectImgUrl;

    @ApiModelProperty("项目视频")
    private String projectVideoUrl;

    @ApiModelProperty("是否劳模")
    private String isModelWorker;

    @ApiModelProperty("联系人")
    private String contacts;

    @ApiModelProperty("联系方式")
    private String contactWay;

    @ApiModelProperty("通讯地址")
    private String contactAddress;

    @ApiModelProperty("联系电话")
    private String phone;

    @ApiModelProperty("当前阶段名称")
    private String stageName;

    @ApiModelProperty("当前阶段级别")
    private Integer stageGrade;

    @ApiModelProperty(value = "状态 -1驳回 0待审核 1审核成功")
    private Integer status;

    @ApiModelProperty("项目类别")
    private String itemCategory;

    @ApiModelProperty("专利形式")
    private String patentForm;

    @ApiModelProperty("专利状况")
    private String patentStatus;

    @ApiModelProperty("专利批准时间")
    private String patentApprovalTime;

    @ApiModelProperty("实施方式")
    private String implementation;

    @ApiModelProperty("项目投入")
    private BigDecimal projectInput;

    @ApiModelProperty("年产值")
    private BigDecimal annualOutput;

    @ApiModelProperty("利润")
    private BigDecimal profit;

    @ApiModelProperty("第一完成人姓名")
    private String firstFinisherName;

    @ApiModelProperty("性别")
    private String sex;

    @ApiModelProperty("岗位职务")
    private String jobTitle;

    @ApiModelProperty("文化程度")
    private String educationalLevel;

    @ApiModelProperty("是否允许编辑 1是 0否")
    private String allowEditing;

    @ApiModelProperty("工作单位")
    private String employer;

    @ApiModelProperty("邮政编码")
    private String zipCode;

    @ApiModelProperty("区域划分")
    private String orgArea;

    @ApiModelProperty("删除状态(0正常 1删除)")
    private String delFlag;

    @ApiModelProperty("创建人")
    private String createBy;

    @ApiModelProperty("创建时间")
    private Timestamp createTime;

    @ApiModelProperty("更新人")
    private String updateBy;

    @ApiModelProperty("更新时间")
    private Timestamp updateTime;

    @ApiModelProperty("第一完成人联系电话")
    private String firstFinisherPhone;

    @ApiModelProperty("第一完成人地址")
    private String firstFinisherAddress;

    @ApiModelProperty("项目简介")
    private String details;

    private String canRate;

    private String declareSubjectName;

    @ApiModelProperty("结束时间")
    private Timestamp endTime;

    @ApiModelProperty("项目等级 1-职创项目库 2-优秀项目库 3-重点项目库")
    private Integer level;

    private String listStatus;

    private String modelWorker;

    private String principalName;

    @ApiModelProperty("备注")
    private String remark;

    private String score;

    @ApiModelProperty("来源")
    private String source;

    private UserSmallDto user;

    @ApiModelProperty("是否允许展示 由用户填写，用于判断后台是否能配置展示")
    private Boolean allowShow;

    @ApiModelProperty("是否属于以下新兴领域:《国家重点支持的高新技术领域》、《战略新兴产业分类》?")
    private Boolean isEmergingAreas;

    @ApiModelProperty("是否具有核心技术:已申请/授权（拥有)专利、软件著作权、集成电路布图设计权、植物新品种、新药证书、农作物品种、中药保护品种?")
    private Boolean isCoreTechnology;

    @ApiModelProperty("是否具有创新规划?具有创新规划、有商业计划书、项目可行性报告等?")
    private Boolean isInnovationPlanning;

    @ApiModelProperty("是否有劳模工匠参与?")
    private Boolean isModelWorkerJoin;

    @ApiModelProperty("是否属于大学生创业项目?")
    private Boolean isUniversityStudentUndertaking;

    @ApiModelProperty("是否自动审核通过")
    private Boolean isAutoPass;

    @ApiModelProperty("是否展示")
    private Boolean isShow;

    @ApiModelProperty(value = "排序")
    private Integer sort;

    @ApiModelProperty(value = "发送数据时的分组 每500个数据一组 共11组")
    private Integer sendGroup;

    @ApiModelProperty(value = "知识产权附件url")
    private String intellectualFileUrl;

    @ApiModelProperty(value = "项目投入（单位：万元）")
    private String investment;

    @ApiModelProperty(value = "项目产出（单位：万元）")
    private String output;

    @ApiModelProperty(value = "最后评分")
    private String lastScore;

    @ApiModelProperty(value = "奖项")
    private String awards;

    @ApiModelProperty(value = "报告附件")
    private String report;

    @ApiModelProperty("开始时间")
    private Timestamp startTime;

    @ApiModelProperty("专家评分情况")
    private List<ProjectScore> expertScoreSituation;

    @ApiModelProperty("院士之家评分情况")
    private List<AcademicianProjectLog> academicianScoreSituation;

    @ApiModelProperty("产业资本评分情况")
    private List<CapitalProjectLog> capitalScoreSituation;

    @ApiModelProperty("上市公司评分情况")
    private List<CompanyProjectLog> companyScoreSituation;

    @ApiModelProperty("产业龙头评分情况")
    private List<LeaderProjectLog> leaderScoreSituation;

    @ApiModelProperty("附件URL")
    private Set<String> appendixes;

    @ApiModelProperty("专家评分项目等级为职创项目的列表情况")
    private List<ProjectScore> listLevel1;

    @ApiModelProperty("专家评分项目等级为优秀项目的列表情况")
    private List<ProjectScore> listLevel2;

    @ApiModelProperty("专家评分项目等级为重点项目的列表情况")
    private List<ProjectScore> listLevel3;

    @ApiModelProperty("院士之家专家评分项目等级为职创项目的列表情况")
    private List<AcademicianProjectLog> listAcademicianLevel1;

    @ApiModelProperty("院士之家专家评分项目等级为优秀项目的列表情况")
    private List<AcademicianProjectLog> listAcademicianLevel2;

    @ApiModelProperty("院士之家专家评分项目等级为重点项目的列表情况")
    private List<AcademicianProjectLog> listAcademicianLevel3;

    @ApiModelProperty("产业资本专家评分项目等级为职创项目的列表情况")
    private List<CapitalProjectLog> listCapitalLevel1;

    @ApiModelProperty("产业资本专家评分项目等级为优秀项目的列表情况")
    private List<CapitalProjectLog> listCapitalLevel2;

    @ApiModelProperty("产业资本专家评分项目等级为重点项目的列表情况")
    private List<CapitalProjectLog> listCapitalLevel3;

    @ApiModelProperty("上市公司专家评分项目等级为职创项目的列表情况")
    private List<CompanyProjectLog> listCompanyLevel1;

    @ApiModelProperty("上市公司专家评分项目等级为优秀项目的列表情况")
    private List<CompanyProjectLog> listCompanyLevel2;

    @ApiModelProperty("上市公司专家评分项目等级为重点项目的列表情况")
    private List<CompanyProjectLog> listCompanyLevel3;

    @ApiModelProperty("产业龙头专家评分项目等级为职创项目的列表情况")
    private List<LeaderProjectLog> listLeaderLevel1;

    @ApiModelProperty("产业龙头专家评分项目等级为优秀项目的列表情况")
    private List<LeaderProjectLog> listLeaderLevel2;

    @ApiModelProperty("产业龙头专家评分项目等级为重点项目的列表情况")
    private List<LeaderProjectLog> listLeaderLevel3;
}